﻿using App1;
using ForumPages;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using WordsOfLove.ForumPages;

// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

namespace WordsOfLove
{
	/// <summary>
	/// An empty page that can be used on its own or navigated to within a Frame.
	/// </summary>
	public sealed partial class MainPage : Page
	{
		public MainPage()
		{
			this.InitializeComponent();
			MainNavigationView.SelectedItem = HomePageItem;
			ContentFrame.Navigated += ContentFrame_Navigated;
			MainNavigationView.BackRequested += MainNavigationView_BackRequested;
		}

		private void MainNavigationView_BackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
		{
			if(ContentFrame.CanGoBack) ContentFrame.GoBack();
		}

		private void ContentFrame_Navigated(object sender, NavigationEventArgs e)
		{
			MainNavigationView.IsBackEnabled = ContentFrame.CanGoBack;
		}

		private void MainNavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
		{
			//REF: https://docs.microsoft.com/zh-cn/windows/uwp/design/controls-and-patterns/navigationview#code-example
			/*
			if (args.IsSettingsSelected)
			{
				ContentFrame.Navigate(typeof(SettingsPage));
				return;
			}
			*/
			switch ((args.SelectedItem as NavigationViewItem).Name)
			{
				case "HomePageItem":  ContentFrame.Navigate(typeof(HomePage));  break;
				case "NewsPageItem": ContentFrame.Navigate(typeof(NewsPage)); break;
				case "WordPageItem": ContentFrame.Navigate(typeof(wordPageWelcome)); break;
				case "ForumPageItem": ContentFrame.Navigate(typeof(ForumMainPage)); break;
			}
			ContentFrame.BackStack.Clear();
			MainNavigationView.IsBackEnabled = ContentFrame.CanGoBack;
		}

	}
}
